/*
 * VertexNode.h
 *
 *  Created on: 15/09/2009
 *      Author: mario
 */

#ifndef VERTEXNODE_H_
#define VERTEXNODE_H_

#include "Node.h"
#include "Vertex.h"

class VertexNode : public Node{
private:
	Vertex* data;
public:
	VertexNode();
	virtual ~VertexNode();
	/**
	 * Gets node value
	 */
	Vertex* getNodeValue() const;
	/**
	 * Sets node value
	 */
	void setNodeValue(Vertex* value);
	/**
	 * Copy Constructor
	 */
	VertexNode(const VertexNode &vertexNode);
	/**
	 * Operator '='
	 */
	VertexNode& operator=(const VertexNode &vertexNode);
	/**
	 * Virtual clone to implement. Virtual copy constructor.
	 */
	virtual VertexNode* clone() const;
	/**
	 * Virtual implementation of equals
	 */
	virtual bool equals(const Node& node) const;
};

#endif /* VERTEXNODE_H_ */
